package com.ruibang.glass.common.domain.material;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = false)
@Builder
public class MaterialAllManagementInventory {

    @ApiModelProperty(value = "入库单号")
    private String number;

    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    @ApiModelProperty(value = "物品名称")
    private String itemName;

    @ApiModelProperty(value = "经手人名称")
    private String handlerName;

    @ApiModelProperty(value = "经手人Id")
    private String handlerId;

    @ApiModelProperty(value = "类型")
    private String typeCode;

    @ApiModelProperty(value = "状态")
    private String status;

    @ApiModelProperty(value = "审批状态")
    private String approveStatus;

    @ApiModelProperty(value = "当前审批人")
    private String currentApprover;

    @ApiModelProperty(value = "结付状态1_已结付 2_为结付")
    private String paymentStatus;

    @ApiModelProperty(value = "完成入库时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime completionTime;

    @ApiModelProperty(value = "入库单创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime inventoryCreationTime;

    @ApiModelProperty(value = "合同编号")
    private String contractNumber;

    @ApiModelProperty(value = "仓库主管")
    private String warehouseSupervisor;

    @ApiModelProperty(value = "验收人")
    private String inspectorId;

    @ApiModelProperty(value = "制单人")
    private String preparerId;

    @ApiModelProperty(value = "到货人")
    private String arrivalPersonId;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "采购单")
    private String purchaseOrder;

    @ApiModelProperty(value = "规格型号")
    private String specification;

    @ApiModelProperty(value = "数量")
    private Integer quantity;

    @ApiModelProperty(value = "合同订单数量")
    private Integer contractOrderQuantity;

    @ApiModelProperty(value = "单位")
    private String unitPrice;

    @ApiModelProperty(value = "原材料批次号")
    private String batchNumber;

    @ApiModelProperty(value = "条形码编号")
    private String barcodeNumber;

    @ApiModelProperty(value = "库位")
    private String storageLocation;

    @ApiModelProperty(value = "序列号")
    private String serialNumber;

    @ApiModelProperty(value = "含量")
    private String content;

    @ApiModelProperty(value = "生产日期")
    private LocalDate productionDate;

    @ApiModelProperty(value = "订单编号")
    private String orderNumber;

    @ApiModelProperty(value = "到货日期")
    private LocalDateTime arriveDate;

    @ApiModelProperty(value = "保质期")
    private String useDate;

    @ApiModelProperty(value = "到期日期")
    private Date overDate;

    @ApiModelProperty(value = "审批状态")
    private String spStatus;

    @ApiModelProperty(value = "仓管员")
    private String warehouseUser;

    @ApiModelProperty(value = "仓库代码")
    private String warehouseCode;

    @ApiModelProperty(value = "仓库Id")
    private String warehouseId;

    @ApiModelProperty(value = "物品编码")
    private String itemCode;

    @ApiModelProperty(value = "菜单Id")
    private String menuId;

    @ApiModelProperty(value = "采购到货单")
    private String purchaseArrivalNote;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    @ApiModelProperty(value = "供应商ID")
    private String supplierId;

    @ApiModelProperty(value = "含量(万分比)")
    private Double contentRatio;
}
